package esi.t2no1.ws.service;

import javax.jws.WebParam;
import javax.jws.WebService;

import org.apache.cxf.annotations.Policy;

import esi.t2no1.ws.model.LoadProfileInput;
import esi.t2no1.ws.model.LoadProfileOutput;
import esi.t2no1.ws.model.QualitySeriesInput;

/**
 * MeteringService is responsible for receiving load profile updates and the
 * quality series from the Ruritania(s).
 * 
 * @author Reimo Rebane
 */

@WebService(serviceName = "MeteringService")
@Policy(uri = "classpath:rm-policy.xml", includeInWSDL = true, placement = Policy.Placement.DEFAULT)
public interface MeteringService {

	/**
	 * Adds the submitted load profile to our database.
	 * 
	 * @param loadProfileInput
	 *            the submitted load profile
	 * @return currently returns the submitted load profile
	 */
	LoadProfileOutput submitLoadProfile(
			@WebParam(name = "loadProfileInput") LoadProfileInput loadProfileInput);

	/**
	 * Submits the quality series. Currently nothing is done with the quality
	 * series.
	 * 
	 * @param qualitySeriesInput
	 *            the submitted quality series
	 * @return true, if successful, otherwise false
	 */
	Boolean submitQualitySeries(
			@WebParam(name = "qualitySeriesInput") QualitySeriesInput qualitySeriesInput);
}
